-
-
Notifications
You must be signed in to change notification settings - Fork 195
Add the 'btree' benchmark. #381
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
8d1cf02
to
bc21dbc
Compare
self.items[p] = extreme | ||
elif is_big(upper_sibling): | ||
# Case 2b. | ||
extreme = upper_sibling.get_min_item() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where is this method defined?
self.items[p] = extreme | ||
else: | ||
# Case 2c. | ||
extreme = upper_sibling.get_min_item() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where is this method defined?
# Case 2. | ||
if is_big(node): | ||
# Case 2a. | ||
extreme = node.get_max_item() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where is this method defined?
for node_id in range(num_nodes): | ||
a = node_id | ||
b = f'node {node_id}' | ||
c = rnd.randbytes(node_id % 100) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Introduced in Python 3.9, while:
This adds a new benchmark that's intended to be a better exercise for the cyclic garbage collector, compared with the existing benchmarks in the suite. The intention is to simulate an application that processes a large number of Python objects in memory, with some relatively complex set of references linking them together. The set of objects should a mixture of GC (container) and non-GC objects since that kind of mixture would be typical in many applications. I initially had the
NUM_NODES
parameter set to 3,000,000. However, in order to keep the running time down and reduce memory usage, I decreased it to 200,000.I should note that this benchmark doesn't exercise the GC in terms of breaking reference cycles. The
create_gc_cycles
is kind of a micro benchmark of that. I'd like to add an additional benchmark that more closely simulates an application that creates a bunch of objects but only some of them are cyclic garbage. That would be separate from this PR though.